package com.lk.once;

import com.alibaba.excel.EasyExcel;
import org.apache.commons.lang3.StringUtils;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * 导入用户到数据库
 *
 */
public class ImportToDB {

    public static void main(String[] args) {
        // todo 记得改为自己的测试文件
        String fileName = "D:\\Java\\0-friendMatch\\CodePartner-backend\\src\\main\\resources\\testExcel.xlsx";
        // 这里 需要指定读用哪个class去读，然后读取第一个sheet 同步读取会自动finish
        List<ImportTableInfo> userInfoList =
                EasyExcel.read(fileName).head(ImportTableInfo.class).sheet().doReadSync();
        System.out.println("总数 = " + userInfoList.size());

        //获取文档中的username不为空且相同的用户，放到一个list里
        Map<String, List<ImportTableInfo>> listMap =
                userInfoList.stream()
                        .filter(userInfo -> StringUtils.isNotEmpty(userInfo.getUsername()))
                        .collect(Collectors.groupingBy(ImportTableInfo::getUsername));

        //遍历输出相同用户名数大于1的
        for (Map.Entry<String, List<ImportTableInfo>> stringListEntry : listMap.entrySet()) {
            if (stringListEntry.getValue().size() > 1) {
                System.out.println("username = " + stringListEntry.getKey());
                System.out.println("----------");
            }
        }
        //有多少种昵称即有多少个不重复的username
        System.out.println("不重复昵称数 = " + listMap.keySet().size());


        //todo
        //这里只是打印了一下，没有真实数据插入到数据库

    }
}
